In recent years there has been a proliferation in the networking of computer systems. The recent expansion of the Internet is just one example of the trend toward distributed computing and information sharing. In most forms of computer or communication networking there are communication paths between the computers in the networks. These paths may include multiple links or hops between intermediate equipment in the path. Thus, a communication may be originated by a first computer and pass through several links before reaching the destination computer. The control over these communications is typically carried out by some form of networking architecture. Many architectures exist for defining communications between computers in a network. For example, System Network Architecture (SNA) and Transfer Control Protocol/Internet Protocol (TCP/IP) are two examples of existing network architectures.
One existing network architecture for controlling communications between computers is known as Advanced Peer to Peer Networking (APPN). APPN, like many networking architectures, is based upon the transmission of data packets where a communication is broken into one or more "packets" of data which are then transmitted from the source to the destination over the communication path. Packet based communications allows for error recovery of less than an entire communication which improves communication reliability and allows for packets to take multiple paths to an end destination thus improving communication availability.
While APPN has proven to be a reliable networking architecture, as computer networking demands have increased there has been created a demand for network architectures which utilize the higher performance communication systems and computer systems currently available. These demands have resulted in the development of High Performance Routing (HPR) which is an enhancement to APPN. The migration from APPN to HPR may be a result of changes in two areas: processing technology and link technology. Processing capability has increased and become less expensive. This has driven the need for larger peer-to-peer networks. Link technology has advanced by several orders of magnitude over the past decade. Advances in wide area links have dramatically increased transmission rates and decreased error rates. Thus, to take advantage of these advances HPR provides high speed data routing which includes end-to-end recovery (i.e. error recovery is performed by the sending and receiving systems) and end-to-end flow and congestion control where the flow of data is controlled by the sending and receiving systems.
HPR consists of two main components: the Rapid Transport Protocol (RTP) and automatic network routing (ANR). RTP is a connection-oriented, full-duplex transport protocol designed to support high speed networks. One feature of RTP is to provide end-to-end error recovery, with optional link level recovery. RTP also provides end-to-end flow/congestion control. Unlike TCP's reactive congestion control, RTP provides an adaptive rate based mechanism (ARB).
In RTP, the ARB mechanism is implemented at the endpoints of an RTP connection. Each endpoint has an ARB sender and an ARB receiver. The ARB sender periodically queries the receiver by sending a rate request to the ARB receiver who responds with a rate reply message. The sender adjusts its send rate based on information received in the rate reply message. Conventionally, RTP discovers the slowest link speed in the path through a connection setup message. The slowest link speed determines the maximum rate (max.sub.-- send.sub.-- rate) at which the sender is allowed to send. Each node in the path overwrites the maximum rate field of the setup message if the link speed associated with that node is less than the existing value of the maximum rate field of the packet.
In a conventional link-level recovery HPR path, the receiver initiates error recovery as soon as it detects an out of sequence packet by sending a gap detect message that identifies the packets that need to be resent. When the sender receives a gap detect message, it drops its send rate by 50%. and resends the packets at the next send opportunity. If the sender does not get a response to a rate request within a time-out period (a typical value for a rate request time-out is 4 times the current round trip time), the sender assumes the packet is lost and cuts the send rate by half, increases the rate request time-out exponentially (exponential back off), and transmits a rate request at the next send opportunity.
Because RTP provides end-to-end flow control, the send rate of packets on a path may be limited by the slowest link in the path as described above. Thus, despite a path having high-speed links in the path if a single low-speed link is present, the sender and receiver will pace the transmission of packets to accommodate the low speed link. Thus, a congestion problem or the presence of one low speed link in a path may degrade the throughput for the entire path.
Previous attempts to overcome the bottleneck problem have included providing multiple parallel paths between endpoints, thus limiting the path between endpoints to a single hop. However such a solution may be limited in its applicability to many modern networking systems which may have many hops between endpoints. Furthermore, in systems which allowed for multiple parallel paths between endpoints of an intermediate path in a routing path, these systems typically re-sequenced the packets at the intermediate endpoints of the multiple link hop. This re-sequencing, however, may limit the ability to have a single session distributed across different links in the multiple links. Such re-sequencing also may reduce the throughput of faster links of the multiple links to the throughput of the slowest link in the group as the packets received from the fast links would wait for packets from the slower links before being sent on from the intermediate endpoint.
In light of the above discussion, a need exists for improvement in routing path selection and management in network systems having multiple parallel routing paths.